<?php
/**
 * 携帯メールアドレス及びフリーメールアドレスを有効化
 * 参考URL：http://www.plusmb.jp/2009/02/13/2540.html
 *
 * @category   Zend
 * @package
 * @copyright  fujiwara
 * @license
 */
class Validate_EmailAddress extends Zend_Validate_Abstract
{
	const INVALID = 'Invalid';

	/**
	 *  @var array
	 */
	protected $_messageTemplates = array(
		self::INVALID => '%sの形式が不正です'
	);

	/**
	 * Defined by Zend_Validate_Interface
	 *
	 * メールアドレスが不正でないか検証
	 *
	 * @param  string  $value
	 * @return boolean
	 */
	public function isValid($value)
	{
		$valueString = (string)$value;

		$this->_setValue($valueString);

		$regex = '/^([*+!.&#$|\'\\%\/0-9a-z^_`{}=?~:-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i';
		if (preg_match($regex, $value, $matches)) {
			return true;
		}
		else {
			$this->_error(self::INVALID);
			return false;
		}
	}
}
